﻿#pragma once

#include "Containers/ThreadSafePtr.h"
#include "Containers/Vector.h"
#include "Containers/Map.h"

class CPreRenderTexture2D;
class CPreRenderTextureCube;
class CPreRenderMesh;
class CPreRenderShader;
class CPreRenderMaterial;

class CPreRenderWindow;

class CAllPreRenderData
{
public:

    //此次预渲染的所有需要的纹理数据
    TVector<std::shared_ptr<CPreRenderTexture2D>> Texture2Ds;

    //此次预渲染的所有需要的立方体纹理数据
    TVector<std::shared_ptr<CPreRenderTextureCube>> TextureCubes;

    //此次预渲染的所有需要的网格数据
    TVector<std::shared_ptr<CPreRenderMesh>> Meshes;

    //此次预渲染的所有着色器
    TVector<std::shared_ptr<CPreRenderShader>> Shaders;

    //此次预渲染所有的材质
    TVector<std::shared_ptr<CPreRenderMaterial>> Materials;

    //此次预渲染涉及的所有窗口
    TVector<std::shared_ptr<CPreRenderWindow>> Windows;


};